package fr.bugtracker.service.compte;

import java.util.Date;

import javax.ejb.EJB;
import javax.ejb.Stateless;

import fr.bugtracker.commun.exception.ExceptionFonctionnelle;
import fr.bugtracker.dao.technique.DaoProfil;
import fr.bugtracker.dao.technique.DaoUtilisateur;
import fr.bugtracker.entity.technique.Utilisateur;
import fr.bugtracker.service.AbstractService;

/**
 * @author Laurent
 * @version 0.1
 */
@Stateless
public class SrvCreerCompte extends AbstractService {

	/**
	 * fr.bugtracker.dao des utilisateurs
	 */
	@EJB
	private DaoUtilisateur daoUtilisateur;
	/**
	 * fr.bugtracker.dao des roles
	 */
	@EJB
	private DaoProfil daoProfil;

	/**
	 * Constructeur de la classe <code>SrvCreerCompte</code>.
	 */
	public SrvCreerCompte() {
	}

	/**
	 * Crée un nouvel utilisateur avec mot de passe crypté. Le compte sera désactivé et en attente de validation
	 * @param utilisateur {@link Utilisateur}
	 * @param password {@link String}
	 * @param dateCreation {@link Date}
	 * @throws ExceptionFonctionnelle -
	 */
	public void creer(Utilisateur utilisateur, String password, Date dateCreation) throws ExceptionFonctionnelle {
		daoUtilisateur.controlerUniciteUsername(utilisateur.getUsername());
		utilisateur.setDateCreation(dateCreation);
		utilisateur.setPassword(password);
		utilisateur.setProfil(daoProfil.getProfilParDefaut());
		daoUtilisateur.create(utilisateur);
	}

}
